from django.contrib import admin
from django.urls import path, re_path
from demo import views
from demo.views import AddArticleView, ArticleDetailView, ArticleUserView, ArticleDelete, ArticleUpdateView

urlpatterns = [
    # 转换器的类型
    # <str:info> <转化器的类型：参数名> 参数名接受路由器传过来的数据
    # ln参数保存info的值，键值对格式 字典类型
    # str只能是字符串
    # path('text/<str:info>',views.text)
    # int只能是数字，且不能是负数
    # path('text/<int:info>', views.text)
    # sulg字母数字横杠下划线都可以，包容性较强，但是使用符号有限制，只能用_,-
    # path('text/<slug:info>', views.text)
    # uuid是唯一表示，用uuid在线生成器生成，注意这里字母不能是大写，除非自定义正则
    # path('text/<uuid:info>', views.text)
    # path什么都可以，但是path包容斜杠/ 所以肯会出现分不清是分隔符还是参数值，一般不用
    path('text/<path:info>', views.text),

    # path('Tv/',views.tv),

    # ?P是规定参数的，固定的语法格式
    # <参数名>
    # ^限制以什么字符开头，$限制以什么字符结尾
    # ()把符合规则字符保留下来，传递给info参数接受
    # []限制路由参数只能由数字以及字母abc组成
    # + 字符个数限制为一次及以上
    re_path("^re_TV/(?P<info>[0-9abc]+)/$",views.Tv),

    path("nav/<str:classes>",views.nav),
    path("404/", views.not_find,name='not_find'),
    path("index/",views.index,name="index"),
    path("classes/",views.classes),
    path("tab_info/", views.tab_info),
    path("article/add/",AddArticleView.as_view(),name="AddArticle"),
    path('article/<int:id>/', ArticleDetailView.as_view(), name='ArticleDetail'),
    path('article/user/', ArticleUserView.as_view(), name='ArticleUser'),
    path('article/update/<int:id>', ArticleUpdateView.as_view(), name='ArticleUpdate'),
    path('article/delete/<int:id>', ArticleDelete.as_view(), name='ArticleDelete'),
]
